package com.bs.resa.dao;


import com.bs.resa.pojo.Task;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface TaskMapper {

    /**
     * 通过项目id获得对应的任务数 1未开始，2进行中，3已完成
     * @param projectId
     * @return
     */
    Integer queryTaskByProject1(@Param("pid") String projectId);
    Integer queryTaskByProject2(@Param("pid") String projectId);
    Integer queryTaskByProject3(@Param("pid") String projectId);


    List<Map<String,Object>> queryTaskList(@Param("pId")String pid,@Param("taskName")String taskName);

    /**
     * 新增任务
     * @param task
     * @return
     */
    Integer insertTask(@Param("task") Task task);

    void updateTaskNumber(@Param("tNumber")String tNumber,@Param("tId") Long tid);

    /**
     * 通过类型id统计当前类型数量
     * @param id
     * @param pid
     */
    Integer getCountTaskType(@Param("tId") Long id, @Param("pId") String pid);

    Integer getCountTask( @Param("pId")String pid);

    List<Map<String, Object>> queryTaskType();

    /**
     * 任务状态类型统计
     * @return
     */
    List<Map<String, Object>> queryTaskStatusList();

    Integer getCountTaskStatus(@Param("pId")String pid,@Param("pTid") Long pTid);

    Integer getSum(@Param("pId")String pid,@Param("id") Long id,@Param("pTid") Long pTid);

    /**
     * 日期分组统计
     * @param pid
     * @return
     */
    List<Map<String, Object>> getDetail(@Param("pId")String pid);
    /**
     * 日期分组统计已经完成的
     * @param pid
     * @return
     */
    List<Map<String, Object>> getDetailSuccess(@Param("pId")String pid);

    /**
     * 查询任务类别 收件箱
     * @return
     */
    List<Map<String, Object>> queryTaskLeibie();

    /**
     * 查询不同类别的当前的任务
     * @param userid
     * @param id
     * @return
     */
    List<Map<String,Object>> queryTaskMy(@Param("userid") Long userid, @Param("id")Long id);

    /**
     * 更新任务状态
     * @param tid
     * @param sid
     * @return
     */
    int updataStatus(@Param("tid") String tid, @Param("sid") String sid);

    Map<String,Object> queryTaskByid(@Param("tid")String tid);

    /**
     * 获得任务属于的项目id
     * @param tid
     * @return
     */
    String getProjectid(@Param("tid")String tid);

    /**
     * 插入任务-附件关联表
     * @param pid
     * @param fid
     * @return
     */
    int insertFile(@Param("tid")String pid, @Param("fid") Long fid);

    /**
     * 更新任务信息
     * @param task
     * @return
     */
    int updataTaskInfo(@Param("task") Task task);

    /**
     * 更新任务类别
     * @param tid
     * @param lei
     * @return
     */
    int updateTaskLei(@Param("tid") String tid,@Param("lei") String lei);

    int insertMyTask(@Param("task")Task task,@Param("lei") int id);



    int queryTaskStatusCount(@Param("userid")Long id,@Param("statusid") Long pTid);

    /**
     * 查询完成的任务
     * @param userid
     * @return
     */
    List<Map<String, Object>> queryTaskMySucc(@Param("userId") Long userid,@Param("taskName")String taskName);
}